home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / breakout.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  2.1 KB  |  44 lines

  1. 1  REM    BREAKOUT game in TRNSFORM format
  2. 2  REM    SEE MEMO TRNSFORM FOR UPLOAD/DOWNLOAD  STUART BELL (301) 588-2491
  3. 10  DELAY=200 'establish initial delay
  4. 20  KEY OFF
  5. 30  CLS: S = 0 'set up score
  6. 40  OPTION BASE 1:DIM L(80,2)
  7. 50  FOR J=1 TO 2:FOR I = 1 TO 80:L(I,J)=1:NEXT I:NEXT J
  8. 60  BAR$=STRING$(80,219):LOCATE 3,1,1:PRINT BAR$;:LOCATE 4,1,1:PRINT BAR$
  9. 70  ON KEY(11) GOSUB 380:KEY(11) ON 'make the ball faster
  10. 80  ON KEY(12) GOSUB 390:KEY(12) ON 'cursor left button pushed
  11. 90  ON KEY(13) GOSUB 400:KEY(13) ON 'cursor right button pushed
  12. 100  ON KEY(14) GOSUB 410:KEY(14) ON 'make the ball slower
  13. 110  XPAD = 39:YPAD = 25 '            establish default paddle positions
  14. 120  CURSOR$="^[[[]"
  15. 130  LOCATE YPAD,XPAD,0:PRINT CURSOR$;
  16. 140  BY=10:BX=1:DY=1:DX=1
  17. 150  KEY (12) STOP:KEY (13) STOP  'suspend key tracking for a while
  18. 160  LOCATE BY,BX:PRINT " ";:BX = BX + DX:BY=BY + DY:IF BY = 1 THEN DY = -DY:        SOUND 97,3:GOTO 250
  19. 170  IF BY<>24 THEN GOTO 250
  20. 180  SOUND 37,3:DY = -DY 'make the ball bounce up
  21. 190  IF BX=XPAD + 0 THEN DX=-3:GOTO 250 'accelerate the ball left by 3
  22. 200  IF BX=XPAD + 1 THEN DX=DX-1:GOTO 250 'accelerate the ball left by 1
  23. 210  IF BX=XPAD + 2 THEN GOTO 250 ' just bounce the ball
  24. 220  IF BX=XPAD + 3 THEN DX=DX+1:GOTO 250 ' accelerate right 1
  25. 230  IF BX=XPAD + 4 THEN DX=DX+3:GOTO 250 ' accelerate right 3
  26. 240  KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF:BEEP:LOCATE 5,1,1:END
  27. 250  IF BX>=80 THEN DX=-DX:BX=80:SOUND 37,3 'right wall - bounce back
  28. 260  IF BX<=1 THEN DX=-DX:BX=1:SOUND 37,3  '  we hit the left wall - bounce back
  29. 270  LOCATE BY,BX: PRINT CHR$(2);
  30. 280  IF BY <> 3 AND BY <> 4 THEN GOTO 350  ' process space in the bars
  31. 290  I=BX:J=BY-2:IF L(I,J) = 1 THEN S=S+1:L(I,J) = 0:SOUND 185,3 : IF J = 1 THEN IF DY < 0 GOTO 300 ELSE  GOTO 310 ELSE IF DY < 0 GOTO 320 ELSE GOTO 330 ELSE GOTO 350
  32. 300  DX = - DX : GOTO 340 'top line going up
  33. 310  GOTO 340 ' top line going down
  34. 320  GOTO 340 ' bottom line going up
  35. 330  DX = - DX ' bottom line going down
  36. 340  DY = - DY:LOCATE 1,70,0:PRINT "score=";S
  37. 350  KEY(12) ON:KEY(13) ON
  38. 360  FOR I=1 TO DELAY :NEXT I:GOTO 150
  39. 370  '             function key handlers
  40. 380  DELAY=ABS(DELAY-1):RETURN ' speed up the ball and the rate of speed
  41. 390  LOCATE YPAD,XPAD:PRINT "      ";:XPAD=(XPAD+71)MOD 73 + 1:LOCATE YPAD,XPAD:PRINT CURSOR$;:RETURN
  42. 400  LOCATE  YPAD,XPAD:PRINT "      ";:XPAD=(XPAD+1)MOD 74 + 1:LOCATE YPAD,XPAD:PRINT CURSOR$;:RETURN
  43. 410  DELAY=DELAY+1:RETURN 'slow down the ball
  44.